System and method for filtering and binarization of images in the presence of specular noise

ABSTRACT

In order to render information contained in images more detectable in the presence of noise, the present invention discloses a system and method to binarize the images in the presence of noise. The method of this invention comprises the steps of applying a dynamic range reducing filter to the digitized image values, obtaining a range reduced image; applying an edge detecting filter to the range reduced image, obtaining a filtered image; and then, adaptively binarizing the digitized image utilizing the corresponding filtered image to obtain an adaptive threshold.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 10/104,878, filed Mar. 22, 2002, entitled SYSTEM AND METHOD FOR FILTERING AND BINARIZATION OF IMAGES IN THE PRESENCE OF SPECULAR NOISE, which is incorporated by reference herein in its entirety.

BACKGROUND OF THE INVENTION

This invention relates generally to methods and system for filtering and binarizing images, and, more particularly to binarizing images in the presence of specular noise, where the information of interest in the image is contained in edges.

Edges contain a significant portion of the information in an image. In some images, such as images containing addresses (text) and bar codes typical of address labels in postal items and packages, edges contain almost all the information. Recovering that information in the presence of specular noise can be difficult. An example of an application where those conditions occur is the recovery of address and bar code information in mail pieces with high gloss wrappings. The specular reflection caused by the high gloss wrappings introduces noise in the image and renders the detection difficult. Typically, OCR systems are used to recover the information. Binarizing in OCR systems, as described by Wu and Manmatha (V. Wu, R. Manmatha, Document Image Clean Up and Binarization, available at http://citeseer.nj.nec.com/43792.html) is traditionally performed with a multi directional global threshold method. Under such a binarization method, the results obtained when the image is obscured by specular noise can be difficult to interpret.

Many difficulties are encountered in recovering the information from images in the presence of specular noise, such as the noise caused by transmission through high gloss wrappings, when global binarization methods are used.

Several adaptive binarization methods have been proposed (see, for example, Ø. D. Trier and T. Taxt, Evaluation of binarization methods for document images, available at http://citeseer.nj.nec.com/trier95evaluation.html, also a short version published in IEEE Transaction on Pattern Analysis and Machine Intelligence, 17, pp. 312-315, 1995). Such proposed adaptive binarization algorithms are in general complex, difficult to implement, and, therefore, have not seen widespread use.

SUMMARY OF THE INVENTION

In order to render information contained in images more recoverable in the presence of specular noise, the present invention discloses a system and method to binarize the image in the presence of specular noise. The method of this invention comprises the steps of applying a dynamic range reducing filter to the digitized image values, obtaining a range reduced image; applying an edge detecting filter to the range reduced image, obtaining a filtered image; and then, adaptively binarizing the digitized image utilizing the corresponding filtered image to obtain an adaptive threshold.

In one embodiment of this invention, the dynamic range reducing filter is a base ten logarithm of one plus the digitized image pixel value. In another embodiment of this invention, the edge detecting filter is a Marr-Hildreth filter times a constant.

The method of this invention can be implemented by a system comprising means for calculating the range reduced image, means for calculating the filtered image and means for determining the binarization. For example, a dedicated processor and supporting memory could be used to implement the method of this invention. In another embodiment, a digital signal processor or a general purpose processor and supporting memory could be used to implement the method of this invention. In still another embodiment, any of the previously described processor and memory systems could be used to implement the filtering operation and a dedicated binarization circuit could be used to implement the binarization operation.

For a better understanding of the present invention reference is made to the accompanying drawings and detailed description and its scope will be pointed out in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A depicts an original image under the presence of noise;

FIG. 1B depicts the binarized image obtained using a global binarization algorithm;

FIG. 1C depicts the binarized image obtained using an embodiment of a binarization algorithm of this invention;

FIG. 2A depicts a second original image under the presence of noise;

FIG. 2B depicts the binarized image, corresponding to the second image, using a global binarization algorithm;

FIG. 2C depicts the binarized image, corresponding to the second image, obtained using an embodiment of a binarization algorithm of this invention;

FIG. 3 is a graphical representation of the pixels from an image, depicting the locations at which a filter as used in an embodiment of this invention is applied;

FIG. 4 is a flow chart representative of an embodiment of the method of this invention;

FIG. 5 is a flow chart representative of a detailed embodiment of the method of this invention;

FIG. 6 is a block diagram representative of an embodiment of the system of this invention; and

FIG. 7 is a block diagram representative of another embodiment of the system of this invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A system and method for binarizing an image in the presence of specular noise, that renders information contained in images more detectable in the presence of noise, is disclosed.

In order to better understand the difficulties encountered in past attempts to apply global binarization methods as described above, reference is made to FIGS. 1A, 1B, 2A, and 2B of the drawings. More specifically, FIG. 1A depicts an original image under the presence of specular noise. FIG. 1B depicts the binarized image obtained from the image of FIG. 1A using a global binarization algorithm. Similarly, FIG. 2A depicts another original image under the presence of noise. FIG. 2B depicts the binarized image obtained from the image of FIG. 2A using a global binarization algorithm.

A graphical representation of the pixels from an image 1 (where image 1 contains only bar codes), depicting the locations at which an embodiment of a filter as used in this invention is applied, is shown in FIG. 3. Referring to FIG. 3, for every point in the digitized image 10, there is a corresponding pixel value 5, p_(i,j). Every pixel value 5, p_(i,j), has a neighborhood of surrounding pixel values 15. Exceptions have to the made for the pixel values at the borders of the image. The methods for treating elements at the boundary are well known to those skilled in the art.

A flow chart representative of an embodiment of the method of this invention is shown in FIG. 4. Referring to FIG. 4, a dynamic range reducing filter or transformation is applied to each pixel value 5, p_(i,j), (step 20, FIG. 4) obtaining a range reduced image with range reduced image pixel values, (p_(i,j))_(reduced). If the dynamic range reducing filter or transformation is given by R(x)>the range reduced image is given by (p _(i,j))_(reduced) =R(p _(i,j))

An edge detecting filter is applied to each pixel value of the range reduced image, (p_(i,j))_(reduced), and to surrounding pixels of the range reduced image (step 30, FIG. 4). (Exemplary embodiments of dynamic range reducing filters and edge detecting filters are described in J. S. Lim, Two Dimensional Signal and Image Processing, ISBN 0-13-935322-4, pp. 453-59 and pp. 476-94, respectively.) A filtered image, (p_(i,j))_(filtered), is obtained by applying the edge detecting filter to the range reduced image. If the edge detecting filter is given a by h_(i,j), where the index j extends from −n to +n, and, similarly, the index i extends from −n to +n, the filtered image pixel values are given by $\left( p_{i,j} \right)_{filtered} = {\sum\limits_{k = {- n}}^{n}{\sum\limits_{l = {- n}}^{n}{h_{{k + n},{l + n}}\left( p_{{i + k},{j + l}} \right)}_{reduced}}}$

Using the filtered image pixel values, an adaptive threshold, T_(i,j) is obtained (step 40, FIG. 4). The digitized image pixel value is then compared to the threshold, T_(i,j) (step 50, FIG. 4). If the pixel value is greater than or equal to the threshold T_(i,j), the binarized pixel value is set equal to 1 (step 60, FIG. 4). If the pixel value is less than the threshold, the binarized pixel value is set equal to zero (step 70, FIG. 4).

It should be apparent that other embodiments of the threshold comparison step could be used. The binarized pixel value could be set to 1 when the pixel value is greater than the threshold T_(i,j), and to zero otherwise. Similarly, the binarized pixel value could be inverted (applying the logical NOT function) resulting in the logical opposite of the embodiment described above.

In a specific embodiment of this invention, the dynamic range reducing filter is a base ten logarithm of one plus the digitized image pixel value. In that embodiment, (p _(i,j))_(reduced)=log₁₀(1+p _(i,j)) In another specific embodiment, the edge detection filter used is a constant multiple of a Marr-Hildreth edge detector. A Marr-Hildreth edge detector is a filter generated by a Laplacian of a Gaussian and, for a 2n+1 by 2n+1 kernel, the filter, h i,j, is given by ${h\quad i},{j = {\frac{{\mathbb{e}}^{{{- {({{({{\mathbb{i}} - n})}^{2} + {({j - n})}^{2}})}}/2}{\pi\sigma}^{2}}}{{\pi\sigma}^{2}}\left\lfloor {{\frac{1}{\pi}\left( \frac{i - n}{\sigma} \right)^{2}} + {\frac{1}{\pi}\left( \frac{j - n}{\sigma} \right)^{2}} - 2} \right\rbrack}}$ In one embodiment, the filter used is sixty times a Marr-Hildreth filter with a σ of 1.5, and is given by ${h\quad i},{j = {60\quad\frac{{\mathbb{e}}^{- {({{{({{`\mathbb{i}} - n})}^{2} + {{({j - n})}^{2}/4}},{5\pi}}}}}{{\pi 2}{.25}}\left\lfloor {{\frac{1}{\pi}\left( \frac{i - n}{1.5} \right)^{2}} + {\frac{1}{\pi}\left( \frac{j - n}{1.5} \right)^{2}} - 2} \right\rbrack}}$

A flow chart representative of a detailed embodiment of the method of this invention is shown in FIG. 5 wherein identical steps to those of FIG. 4 are represented by blocks with the same reference numbers. Referring to FIG. 5, the threshold is selected equal to the filtered image pixel value, (p_(i,j))_(filtered) (step 45, FIG. 5).

The method of this invention can be implemented by a system 100 (FIG. 6) comprising means for calculating the filtered image and means for determining the binarization. Referring to FIG. 6, a processor 110 and supporting memory 130 could be used to implement the method of this invention. Processor 110 can be a dedicated processor, or a digital signal processor, or a general purpose processor and supporting memory 130 could be any computer readable memory. The digitized image values are provided as input by input means 120. It should be apparent that input means 120 could be any input means known in the art. Other memory 140 could be used for housekeeping and other functions. The processor and memory systems and the code to cause the processor to implement the methods of this invention constitute means for applying a dynamic range reducing filter to the digitized image values, means for applying the edge detecting filter to the reduced range image and means for binarizing the digitized image. In another embodiment, shown in FIG. 7, wherein identical blocks as those shown in FIG. 6 are shown as blocks with the same block numbers, the previously described processor 110 and supporting memory 160 could be used to implement the filtering operations and the determining of the adaptive threshold and a dedicated binarization circuit 170 could be used to implement the binarization operation. For example, the operation of comparing the digitized image value to the filtered image pixel value at each pixel could be implemented by means of digital circuits.

The results obtained by applying the method of this invention to images in the presence of specular noise, such as the noise caused by viewing the image through a high gloss wrapping, can be seen from FIGS. 1A, 1C, 2A, 2C. FIG. 1A depicts an original image under the presence of noise. FIG. 1C depicts the binarized image obtained from the image of FIG. 1A using the method and system of this invention described above in which a range reducing filter equal to a base ten logarithm of one plus the digitized image pixel value and an edge detecting filter equal to sixty times a Marr-Hildreth (Laplacian of Gaussians) filter with a σ of 1.5 pixels are used. Similarly, FIG. 2A depicts another original image under the presence of noise. FIG. 2C depicts the binarized image obtained from the image of FIG. 2A using the method and system of this invention described above.

While the detailed embodiment of this invention has been described in terms of a filter that is a multiple of a Marr-Hildreth filter it should be apparent that any edge detecting filter could be used. Similarly, while the detailed embodiment of this invention has been described in terms of a range reducing filter that is a base ten logarithm of one plus the digitized image pixel value, it should be apparent that any dynamic range reducing filter can be used. Also, similarly, while the detailed embodiment of this invention has been described in terms of an adaptive threshold equal to the filtered image pixel value, it should be apparent that other functions of the filtered image pixel values could be used.

In general, the techniques described above may be implemented, for example, in hardware, software, firmware, or any combination thereof. The techniques described above may be implemented in one or more computer programs executing on a programmable computer including a processor, a storage medium readable by the processor (including, for example, volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Program code may be applied to data entered using the input device to perform the functions described and to generate output information. The output information may be applied to one or more output devices.

Elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions.

Each computer program within the scope of the claims below may be implemented in any programming language, such as assembly language, machine language, a high-level procedural programming language, or an object-oriented programming language. The programming language may be a compiled or interpreted programming language.

Each computer program may be implemented in a computer program product tangibly embodied in a computer-usable storage device for execution by a computer processor. Method steps of the invention may be performed by a computer processor executing a program tangibly embodied on a computer-readable medium to perform functions of the invention by operating on input and generating output.

Common forms of computer-usable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CDROM, any other optical medium, punched cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read.

Although the invention has been described with respect to various embodiments, it should be realized this invention is also capable of a wide variety of further and other embodiments within the spirit and scope of the appended claims. 

1. A computer program product comprising: a computer usable medium having computer readable code embodied therein for decoding a image in the presence of noise, said image being a digitized image comprising pixels, each said pixel having a corresponding digitized image value, said code causing a computer system to: apply a non linear dynamic range reducing filter to the digitized image value of each said pixel; obtain a range reduced image comprising range reduced image pixels, each of the range reduced image pixels having a corresponding range reduced image pixel value; apply an edge detecting filter to the range reduced image; and obtain, by applying said edge detecting filter, a filtered image comprising filtered image pixels, each of the filtered image pixels having a corresponding filtered image pixel value; adaptively binarize the digitized image utilizing an adaptive threshold obtained from the filtered image pixel value.
 2. The computer program product of claim 1 where, in the computer readable code that causes the computer system to apply an edge detecting filter to the digitized bar code image, the edge detecting filter comprises a Hildreth-Marr filter times a constant.
 3. The computer program product of claim 1 where, in the computer readable code that causes the computer system to apply a dynamic range reducing filter to the digitized image, the dynamic range reducing filter comprises a filter producing a range reduced image pixel value equal to a base ten logarithm, said logarithm having an argument equal to one plus the digitized image pixel value.
 4. The computer program product of claim 1 where, the computer readable code that causes the computer system to adaptively binarize the digitized image, further causes the computer system to compare the digitized image value to the filtered image pixel value at each pixel. 